package main

import (
	"fmt"
	//"time"
)
//时间和日期的函数需要导入"time"包，获取当前时间需要调用Now函数
/* func main(){
	now := time.Now() //Now返回值是一个结构体，类型是：time.Time
	fmt.Printf("%v -- 对应的类型是：%T\n",now,now)
    //2023-01-07 22:02:17.5943388 +0800 CST m=+0.003790101 
	//对应的类型是：time.Time

	//调用结构体中的方法
	fmt.Printf("年：%v \n",now.Year())
	fmt.Printf("月：%v \n",now.Month())
	fmt.Printf("月：%v \n",int(now.Month()))
	fmt.Printf("日：%v \n",now.Day())
	fmt.Printf("时：%v \n",now.Hour())
	fmt.Printf("分：%v \n",now.Minute())
	fmt.Printf("秒：%v \n",now.Second())

	//日期的格式化：
	//(1)将日期以年月日时分秒按照格式输出为字符串
	//Printf将字符串直接输出
	fmt.Printf("当前年月日：%d-%d-%d 时分秒：%d-%d-%d \n",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
	//Sprint可以得到这个字符串，以便后续使用：
	datestr := fmt.Sprintf("当前的年月日： %d-%d-%d 时分秒：%d-%d-%d",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
	fmt.Println(datestr)
	//(2)按照指定格式输出
	//这个参数字符串的各个数字必须是固定的，必须这样写
	datestr2 := now.Format("2006/01/02 15/04/05")
	fmt.Println(datestr2)
	//可以选取任意组合
	datestr3 := now.Format("2006 15:04")
	fmt.Println(datestr3)
} */

//内置函数 - builtin包下 可直接使用
//常用函数 len函数 - 统计字符串的长度，按字节进行统计
func main(){
	//定义一个字符串：
	str := "golang"
	fmt.Println(len(str)) //6

	//new函数 分配内存
	//实参是一个类型而不是具体数值，new函数返回该类型的指针类型
	num := new(int) // num -> *int
	fmt.Printf("num的类型:%T, num的值是：%v, num的地址是：%v , num指针指向的值是：%v\n",num,num,&num,*num)
	//num的类型:*int, num的值是：0xc00000e0b8, num的地址是：0xc00000a030 , num指针指向的值是：0
}